From: Florian Müllner Date: Thu, 16 Jun 2011 12:53:17 +0000 (+0200) Subject: workspaces-display: Don't slide out pager on drag-begin X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~8144 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=ed8acefc007a0de9a0175efa6f29d6593e000138;p=gnome-shell.git workspaces-display: Don't slide out pager on drag-begin Sliding out the workspaces pager when starting a drag causes a lot of motion. With the pager only hiding if workspaces are not used, it is better to require to explicitly hover the workspaces sidebar for the sliding. https://bugzilla.gnome.org/show_bug.cgi?id=652730 --- diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index d6012795c..7b7c05ba1 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -855,7 +855,7 @@ WorkspacesDisplay.prototype = { if (Main.overview.animationInProgress) return; - let shouldZoom = this._alwaysZoomOut || this._controls.hover || (this._inDrag && !this._cancelledDrag); + let shouldZoom = this._alwaysZoomOut || this._controls.hover; if (shouldZoom != this._zoomOut) { this._zoomOut = shouldZoom; this._updateWorkspacesGeometry(); @@ -879,12 +879,22 @@ WorkspacesDisplay.prototype = { _dragBegin: function() { this._inDrag = true; this._cancelledDrag = false; - this._updateZoom(); + this._dragMonitor = { + dragMotion: Lang.bind(this, this._onDragMotion) + }; + DND.addDragMonitor(this._dragMonitor); }, _dragCancelled: function() { this._cancelledDrag = true; - this._updateZoom(); + DND.removeDragMonitor(this._dragMonitor); + }, + + _onDragMotion: function(dragEvent) { + let controlsHovered = this._controls.contains(dragEvent.targetActor); + this._controls.set_hover(controlsHovered); + + return DND.DragMotionResult.CONTINUE; }, _dragEnd: function() {